package cn.txy.course.controller;

import cn.txy.config.R;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;

/**
 * @Author: Neuronet
 * @Date: 2023-09-25
 * @Description: 公共接口
 * @Version:1.0
 */
@RestController
@RequestMapping("/common")
public class CommonController {

    // 获取配置文件中的文件上传路径
    @Value("${file.file-path}")
    private String filePath;

     /**
     * @Description: 文件上传
     * @Author: Neuronet
     * @Date: 2023/9/25 15:53
     * @param file: 要上传的文件
     * @Return:
     **/
    @PostMapping("/upload")
    public R<Void> upload(@RequestParam("file") MultipartFile file) throws IOException {
        // 1.获取文件原名
        String originalFilename = file.getOriginalFilename();

        // 2.生成新的文件名，避免文件名称重复
        String fileName = System.currentTimeMillis() + "_" + originalFilename;

        // 3.组合文件上传路径
        String uploadUrl = filePath + fileName;

        // 4.根据路径创建文件，如果不存在则创建
        File fileTmp = new File(uploadUrl);
        if (!fileTmp.exists()){
            fileTmp.mkdirs();
        }

        // 5.将文件保存到指定路径
        file.transferTo(fileTmp);

        // 6.响应
        return R.ok("上传成功！");
    }

}
